home *** CD-ROM | disk | FTP | other *** search
/ Power Hacker 2003 / Power_Hacker_2003.iso / Exploit and vulnerability / hoobie / lizards.txt < prev    next >
Text File  |  2001-11-06  |  4KB  |  102 lines

  1.  
  2. [ http://www.rootshell.com/ ]
  3.  
  4. Greetings.
  5.  
  6. Recently looking through the source of the suid root game called Lizards I
  7. noticed a vunerablity which is incredibly trivial to allow regular users
  8. at the console gain unauthorized root access.
  9.  
  10. The exploitable code is found in the main portion of the code, on the
  11. second last line in fact:
  12.  
  13. ---
  14. ...
  15.  
  16.    system("clear");
  17.    return EXIT_SUCCESS;
  18. }
  19.  
  20. ---
  21.  
  22. As this program does not seem anywhere through relinquish root
  23. privilidges, it executes "clear" (supposed to be /usr/bin/clear) as root,
  24. assuming everything is cool. Simple changing of the users PATH environment
  25. variable to something like PATH=.:/usr/games/lizardlib, then creating a
  26. symlink (or a sh script) called "clear" that executes a shell of your
  27. liking, will cause that command to be executed as root when the program
  28. exits. Voila, a root shell.
  29.  
  30. Of course this requires the game to run smoothly. This game comes with
  31. Slackware 3.4 in the y package.
  32.  
  33. Lame fix:   chmod -s /usr/games/lizardlib/lizardshi
  34. Better fix: Change the source code, recompile lizards to reference "clear"
  35.             absoloutley.
  36.  
  37. Regards
  38. suid@stealth.com.au
  39.  
  40.  
  41. --------------------------------------------------------------------------------
  42.  
  43. SUID shared,
  44. > Recently looking through the source of the suid root game called Lizards I
  45. > noticed a vunerablity which is incredibly trivial to allow regular users
  46. > at the console gain unauthorized root access.
  47. ....
  48. > privilidges, it executes "clear" (supposed to be /usr/bin/clear) as root,
  49. ....
  50. > Lame fix:   chmod -s /usr/games/lizardlib/lizardshi
  51. > Better fix: Change the source code, recompile lizards to reference "clear"
  52. >             absoloutley.
  53.  
  54. Even if you change system("clear") to system("/usr/ucb/clear"), the user can
  55. still invoke lizards in a /bin/sh environment where IFS contains the "/"
  56. character and simply provide something called "usr" in their path which
  57. invokes a root shell.  Unless Linux does something clever to prevent this, or
  58. unless lizards is smart enough to check the IFS environment variable, that is.
  59.  
  60. In a brand spanking new AIX 3.2.5 system, the /usr/lpp/servinfo/servinfo
  61. command (if installed) contains this sort of creature; if the
  62. /usr/lpp/servinfo/data/siAPARs.db.Z file has not yet been uncompressed,
  63. servinfo executes a system call to /usr/bin/uncompress -f to make it happen.
  64. The servinfo command is mode 4755 owned by root and trusts the environment you
  65. give it.  On occasion this has come in handy. :)
  66.  
  67. I have also seen patched systems where servinfo is owned by nobody.  (I don't
  68. have the PTF number handy, surf the IBM web site for more info.)  Then again,
  69. it's occasionally useful to be known as nobody, too...
  70.  
  71. _Alex
  72.  
  73.  
  74. --------------------------------------------------------------------------------
  75.  
  76. > Recently looking through the source of the suid root game called Lizards I
  77.  
  78. Why is this suid root? I assume it uses svgalib and the mistaken notion that
  79. svgalib requires programs setuid root is still in every doc and HOWTO about
  80. svgalib programming several years after this has been fixed.
  81.  
  82. Use "ioperm" <URL:http://www.inka.de/~bigred/sw/ioperm.txt> to run any
  83. svgalib program (and more) without making them setuid. svgalib does properly
  84. support running with this tool for a long time now.
  85.  
  86. There is no excuse at all for making any game setuid root.
  87.  
  88. olaf
  89.  
  90. --------------------------------------------------------------------------------
  91. >
  92. > There is no excuse at all for making any game setuid root.
  93.  
  94. Yes, but as you point out in your post, programs running with svgalib
  95. under ioperm maintain an open fd to /dev/mem -- so if one can compromise
  96. them, then one can get root, patch the kernel without getting root, or
  97. whatever.
  98.  
  99. Kragen
  100.  
  101. ----------------------------------------------------------------------------
  102.